<?php


namespace sinri\wenli;


class DutyForSBV extends PageReader
{

    protected $bookMapping = [];

    public function duty()
    {
        $this->fetchBookMapping();

        foreach ($this->bookMapping as $bookIndex => $bookMeta) {
            echo "Book Mapping {$bookIndex}th Item: " . json_encode($bookMeta) . PHP_EOL;
            $chapterCountForBook = $this->bookChapterMapping($bookIndex);
            $this->dutyForBookByEachChapter($bookMeta['book_id'], $bookMeta['book_name'], $chapterCountForBook);
        }
    }

    public function version()
    {
        return "sbv";
    }

    public function fetchBookMapping()
    {
        $bookNameList = [
            '1' => '创世纪', // ［创］
            '2' => '出谷纪', // ［出］
            '3' => '肋未纪', // ［肋］
            '4' => '户籍纪', // ［户］
            '5' => '申命纪', // ［申］
            '6' => '若苏厄书', // ［苏］
            '7' => '民长纪', // ［民］
            '8' => '卢德传', // ［卢］
            '9' => '撒慕尔纪上', // ［撒上］
            '10' => '撒慕尔纪下', // ［撒下］
            '11' => '列王纪上', // ［列上］
            '12' => '列王纪下', // ［列下］
            '13' => '编年纪上', // ［编上］
            '14' => '编年纪下', // ［编下］
            '15' => '厄斯德拉上', // ［厄上］
            '16' => '厄斯德拉下', // ［厄下］
            'a' => '多俾亚传', // ［多］
            'b' => '友弟德传', // ［友］
            '17' => '艾斯德尔传', // ［艾］
            'c' => '玛加伯上', // ［加上］
            'd' => '玛加伯下', // ［加下］
            '18' => '约伯传', // ［约］
            '19' => '圣咏集', // ［咏］
            '20' => '箴言篇', // ［箴］
            '21' => '训道篇', // ［训］
            '22' => '雅歌[六幕]', // ［歌］
            'e' => '智慧篇', // ［智］
            'f' => '德训篇', // ［德］
            '23' => '依撒意亚', // ［依］
            '24' => '耶肋米亚', // ［耶］
            '25' => '耶肋米亚哀歌', // ［哀］
            'g' => '巴路克', //［巴］　
            '26' => '厄则克耳', // ［则］
            '27' => '达尼尔', // ［达］
            '28' => '欧瑟亚', // ［欧］
            '29' => '岳厄尔', // ［岳］
            '30' => '亚毛斯', // ［亚］
            '31' => '亚北', // ［北］
            '32' => '约纳', // ［纳］
            '33' => '米该亚', // ［米］
            '34' => '纳鸿', // ［鸿］
            '35' => '哈巴谷', // ［哈］
            '36' => '索福尼亚', // ［索］
            '37' => '哈盖', // ［盖］
            '38' => '匝加利亚', // ［匝］
            '39' => '玛拉基亚', // ［拉］
//
            '40' => '玛窦福音', // ［玛］
            '41' => '玛尔谷福音', // ［谷］
            '42' => '路加福音', // ［路］
            '43' => '若望福音', // ［若］
            '44' => '宗徒大事录', // ［宗］
            '45' => '罗马人书', // ［罗］
            '46' => '格林多前书', // ［格前］
            '47' => '格林多后书', // ［格后］
            '48' => '迦拉达书', // ［迦］
            '49' => '厄弗所书', // ［弗］
            '50' => '斐理伯书', // ［斐］
            '51' => '哥罗森书', // ［哥］
            '52' => '得撒洛尼前书', // ［得前］
            '53' => '得撒洛尼后书', // ［得后］
            '54' => '弟茂德前书', // ［弟前］
            '55' => '弟茂德后书', // ［弟后］
            '56' => '弟铎书', // ［铎］
            '57' => '费肋孟书', // ［费］
            '58' => '希伯来书', // ［希］
            '59' => '雅各伯书', // ［雅］
            '60' => '伯多禄前书', // ［伯前］
            '61' => '伯多禄后书', // ［伯后］
            '62' => '若望一书', // ［若一］
            '63' => '若望二书', // ［若二］
            '64' => '若望三书', // ［若三］
            '65' => '犹达书', // ［犹］
            '66' => '若望默示录', // ［默］
        ];

        $this->bookMapping = [];
        $i = 0;
        foreach ($bookNameList as $bookCanonId => $bookName) {
            $this->bookMapping[] = [
                'book_id' => $i + 1,
                'book_canon_id' => $bookCanonId,
                'book_name' => $bookName,
            ];
            $i++;
        }

    }

    public function bookChapterMapping($bookId = -1)
    {
        $map = [
            //舊約
            50, 40, 27, 36, 34,
            24, 21, 4, 31, 24, 22, 25, 29, 36, 10, 13,
            //外典 - 历史
            14, 16,
            //以斯帖记
            10,
            //外典 - 马加比传上下
            16, 15,
            // 智慧书
            42, 150, 31, 12, 8,
            // 外典 - 智慧书
            19, 51,
            // 先知书 - 以赛亚和耶利米
            66, 52, 5,
            // 外典 - 巴录书
            6,
            // 其他先知书
            48, 12, 14, 3, 9, 1, 4, 7, 3, 3, 3, 2, 14, 4,
            //新約
            28, 16, 24, 21, 28, 16, 16, 13, 6, 6, 4, 4, 5, 3, 6, 4, 3, 1, 13, 5, 5, 3, 5, 1, 1, 1, 22,
        ];
        if ($map < 0) {
            return $map;
        }
        return $map[$bookId];
    }

    protected function getBookURL($book_id, $book_name = null, $chapter_id = null)
    {
        $url = "http://www.shangzhi.org/bible/?_b=" . intval($book_id, 10) . "&_c=" . intval($chapter_id);
        return $url;
    }

    public function bookIdToReadIndex($book_id)
    {
        foreach ($this->bookMapping as $item) {
            if ($item['book_id'] == $book_id) return $item['book_canon_id'];
        }
        return "unknown-" . $book_id;
    }

    protected function html2txt($html, $chapter = null)
    {
        $html = mb_convert_encoding($html, "UTF-8", "GB2312");
        $txt = "";
        if (preg_match_all(
            '/sup class="num">(\d+:\d+)<\/sup>([^<]+)<font/',
            $html,
            $matches
        )) {
            $count = count($matches[0]);
            for ($i = 0; $i < $count; $i++) {
                $txt .= $matches[1][$i] . " " . $matches[2][$i] . PHP_EOL;
            }
        }
        return $txt;
    }
}